Skip to content

Deprecate Partition Manager in Matter - phase 1#28226

Merged
ArekBalysNordic merged 3 commits into
nrfconnect:mainfrom
ArekBalysNordic:pm_removal
Apr 27, 2026
Merged

Deprecate Partition Manager in Matter - phase 1#28226
ArekBalysNordic merged 3 commits into
nrfconnect:mainfrom
ArekBalysNordic:pm_removal

Conversation

@ArekBalysNordic
Copy link
Copy Markdown
Contributor

@ArekBalysNordic ArekBalysNordic commented Apr 16, 2026

In the phase 1 of PM deprecation in Matter:

  • Create common dtsi board files dedicated to Matter samples with a proper partitioning.
  • Align Matter OTA and Matter Factory data files to the new changes
  • Provide alingments in sdk-connectedhomeip
  • Aligned the Matter Template sample (only this one) to verify whether deprecation works properly.

upcoming changes:
phase 2: Testing Template sample & Convert all other Matter samples and applications
phase 3: Prepare release notes, migration guide and documentation about the new partitioning.

test_chip: PR-1112

@NordicBuilder
Copy link
Copy Markdown
Contributor

NordicBuilder commented Apr 16, 2026

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
matter nrfconnect/sdk-connectedhomeip@06f463d nrfconnect/sdk-connectedhomeip@68fb1e3 (master) nrfconnect/sdk-connectedhomeip@06f463dd..68fb1e39

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@NordicBuilder
Copy link
Copy Markdown
Contributor

NordicBuilder commented Apr 16, 2026

CI Information

To view the history of this post, click the 'edited' button above
Build number: 16

Inputs:

Sources:

sdk-nrf: PR head: 8c1a206f7db5f974b3f79a80ee22a4904cfbb2df
matter: PR head: 68fb1e39ed5114a755fe661cd63c15b5a49b995c

more details

sdk-nrf:

PR head: 8c1a206f7db5f974b3f79a80ee22a4904cfbb2df
merge base: 4c4fbf75f6360507c92563b77fb769f8e7d8760d
target head (main): 199741d5177b10796a756e43c3953c431908f50b
Diff

matter:

PR head: 68fb1e39ed5114a755fe661cd63c15b5a49b995c
merge base: 06f463dd878a39741edfc08a9f15e04666642b20
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (72)
dts
│  ├── samples
│  │  ├── matter
│  │  │  ├── nrf52840_partitions.dtsi
│  │  │  ├── nrf5340_cpuapp_partitions.dtsi
│  │  │  ├── nrf5340_cpunet_partitions.dtsi
│  │  │  ├── nrf54l10_cpuapp_partitions.dtsi
│  │  │  ├── nrf54l15_cpuapp_internal_partitions.dtsi
│  │  │  ├── nrf54l15_cpuapp_ns_partitions.dtsi
│  │  │  ├── nrf54l15_cpuapp_partitions.dtsi
│  │  │  ├── nrf54lm20_cpuapp_internal_partitions.dtsi
│  │  │  ├── nrf54lm20_cpuapp_partitions.dtsi
│  │  │  │ nrf7002_cpuapp_partitions.dtsi
modules
│  ├── lib
│  │  ├── matter
│  │  │  ├── config
│  │  │  │  ├── nrfconnect
│  │  │  │  │  ├── chip-module
│  │  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  │  ├── Kconfig
│  │  │  │  │  │  ├── generate_factory_data.cmake
│  │  │  │  │  │  │ generate_factory_data_sysbuild.cmake
│  │  │  ├── src
│  │  │  │  ├── platform
│  │  │  │  │  ├── nrfconnect
│  │  │  │  │  │  │ FactoryDataProvider.h
samples
│  ├── matter
│  │  ├── template
│  │  │  ├── Kconfig.sysbuild
│  │  │  ├── boards
│  │  │  │  ├── nrf52840dk_nrf52840.overlay
│  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  ├── nrf54l15dk_nrf54l10_cpuapp.overlay
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp_internal.overlay
│  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp_ns.overlay
│  │  │  │  ├── nrf54l15tag_nrf54l15_cpuapp.overlay
│  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp_internal.overlay
│  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp.overlay
│  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp_internal.overlay
│  │  │  │  │ nrf7002dk_nrf5340_cpuapp.overlay
│  │  │  ├── pm_static_nrf52840dk_nrf52840.yml
│  │  │  ├── pm_static_nrf5340dk_nrf5340_cpuapp.yml
│  │  │  ├── pm_static_nrf5340dk_nrf5340_cpuapp_nrf70ek.yml
│  │  │  ├── pm_static_nrf54l15dk_nrf54l10_cpuapp.yml
│  │  │  ├── pm_static_nrf54l15dk_nrf54l15_cpuapp.yml
│  │  │  ├── pm_static_nrf54l15dk_nrf54l15_cpuapp_internal.yml
│  │  │  ├── pm_static_nrf54l15dk_nrf54l15_cpuapp_ns.yml
│  │  │  ├── pm_static_nrf54l15tag_nrf54l15_cpuapp.yml
│  │  │  ├── pm_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml
│  │  │  ├── pm_static_nrf54lm20dk_nrf54lm20a_cpuapp_internal.yml
│  │  │  ├── pm_static_nrf54lm20dk_nrf54lm20b_cpuapp.yml
│  │  │  ├── pm_static_nrf54lm20dk_nrf54lm20b_cpuapp_internal.yml
│  │  │  ├── pm_static_nrf7002dk_nrf5340_cpuapp.yml
│  │  │  ├── sample.yaml
│  │  │  ├── sysbuild.conf
│  │  │  ├── sysbuild
│  │  │  │  ├── b0n
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpunet.overlay
│  │  │  │  │  │  │ nrf7002dk_nrf5340_cpunet.overlay
│  │  │  │  │  │ prj.conf
│  │  │  │  ├── ipc_radio
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpunet.overlay
│  │  │  │  │  │  │ nrf7002dk_nrf5340_cpunet.overlay
│  │  │  │  ├── mcuboot
│  │  │  │  │  ├── boards
│  │  │  │  │  │  ├── nrf52840dk_nrf52840.overlay
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.conf
│  │  │  │  │  │  ├── nrf5340dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l10_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp_internal.overlay
│  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp_ns.conf
│  │  │  │  │  │  ├── nrf54l15tag_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.conf
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp_internal.conf
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20a_cpuapp_internal.overlay
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp.conf
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp.overlay
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp_internal.conf
│  │  │  │  │  │  ├── nrf54lm20dk_nrf54lm20b_cpuapp_internal.overlay
│  │  │  │  │  │  ├── nrf7002dk_nrf5340_cpuapp.conf
│  │  │  │  │  │  │ nrf7002dk_nrf5340_cpuapp.overlay
│  │  │  │  │  │ prj.conf
│  │  │  │ sysbuild_internal.conf
sysbuild
│  ├── CMakeLists.txt
│  │ matter.cmake
west.yml

Outputs:

Toolchain

Version:
Build docker image:

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain
  • ◻️ Build twister
  • ◻️ Integration tests
    • ◻️ desktop52_verification
    • ◻️ test_ble_nrf_config
    • ◻️ test-fw-nrfconnect-ble_mesh
    • ◻️ test-fw-nrfconnect-ble_samples
    • ◻️ test-fw-nrfconnect-chip
    • ◻️ test-fw-nrfconnect-nfc
    • ◻️ test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • ◻️ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • ◻️ test-fw-nrfconnect-nrf-iot_samples
    • ◻️ test-fw-nrfconnect-nrf-iot_lwm2m
    • ◻️ test-fw-nrfconnect-nrf-iot_thingy91
    • ◻️ test-fw-nrfconnect-nrf_crypto
    • ◻️ test-fw-nrfconnect-rpc
    • ◻️ test-fw-nrfconnect-rs
    • ◻️ test-fw-nrfconnect-fem
    • ◻️ test-fw-nrfconnect-tfm
    • ◻️ test-fw-nrfconnect-thread-main
    • ◻️ test-sdk-find-my
    • ◻️ test-fw-nrfconnect-nrf_lrcs_mosh
    • ◻️ test-fw-nrfconnect-nrf_lrcs_positioning
    • ◻️ test-sdk-wifi
    • ◻️ test-low-level
    • ◻️ test-sdk-mcuboot
    • ◻️ test-sdk-dfu
    • ◻️ test-fw-nrfconnect-ps-main

Note: This message is automatically posted and updated by the CI

@github-actions
Copy link
Copy Markdown

You can find the documentation preview for this PR here.

@ArekBalysNordic ArekBalysNordic force-pushed the pm_removal branch 2 times, most recently from 8e7dd5a to 7ea874c Compare April 17, 2026 09:45
Comment thread dts/samples/matter/nrf52840_partitions.dtsi
Comment on lines +7 to +12
/ {
chosen {
nordic,pm-ext-flash = &mx25r64;
};
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/ {
chosen {
nordic,pm-ext-flash = &mx25r64;
};
};

remove from all

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

Comment on lines +13 to +18
/* restore full SRAM space - by default some parts are dedicated to FLRP */
&cpuapp_sram {
reg = <0x20000000 DT_SIZE_K(192)>;
ranges = <0x0 0x20000000 DT_SIZE_K(192)>;
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be dropped since upmerge has this on boards

Comment on lines +18 to +19
reg = <0x0 DT_SIZE_K(1524)>;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likewise here, also filename needs to have nrf54l15_cpuapp

nordic,pm-ext-flash = &mx25r64;
};
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nrf54l15_cpuapp_ns in filename missing

Comment on lines +13 to +33
/delete-node/ &sram0_s;
/delete-node/ &sram0_ns;

&cpuapp_sram {
reg = <0x20000000 DT_SIZE_K(256)>;
ranges = <0x0 0x20000000 DT_SIZE_K(256)>;

sram0_s: image_s@0 {
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0x0 DT_SIZE_K(60)>;
ranges = <0x0 0x0 DT_SIZE_K(60)>;
};

sram0_ns: image_ns@f000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0xf000 DT_SIZE_K(196)>;
ranges = <0x0 0xf000 DT_SIZE_K(196)>;
};
};
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this shouldn't be needed either with upmerge

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I wait for the upmerge to be finalized, or merge this PR and remove it later?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will remove it in the Phase 2. Zephyr upmerge probably will be done until that, so I will be able to remove all of those things.

* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

#include <samples/matter/nrf5340_cpunet_partitions.dtsi>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optionally use a socs file instead of these 2

Comment thread dts/samples/matter/nrf54l15_cpuapp_internal_partitions.dtsi
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

#include <samples/matter/nrf52840_partitions.dtsi>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't like the idea of this, @tejlmand for visibility/comment. And ping @kylebonnici whilst it will work in vscode, it means customers are wholly unable to change partition layouts for these

Copy link
Copy Markdown
Contributor Author

@ArekBalysNordic ArekBalysNordic Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait, @nordicjm do you mean including the .dtsi partition file from that directory? Why is it a bad idea? Actually it is your idea :) you suggested it some time ago, because we could not use target like 'nrf54l15dk/nrf54l15/cpuapp/matter'. Ok, I used different names, and there are no full target name in the file names, however the whole approach of storing dtsi files in the board/matter is your idea and I've just based on that. So what has been changed? If it is not possible to include partitions like this, we cannot convert matter samples to non-PM build, because it is our main requirement (we must share common partitions within the all samples).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, for me it works even better than I expected :) I added the "section" partition between "factory data" and "storage_partition" and in the output .overlay file I can see that the storage partition reg was adjusted, and the new section is placed as I wanted:
image

Also, in the nrf52840_partitions.dtsi file I can see that the reg attribute of the storage partition is now greyed-out, so it means that the new reg from the .overlay is taken.

So what's the problem? For me it works great. Used the recent VSCode extension = 2026.4.1637

Copy link
Copy Markdown
Contributor

@kylebonnici kylebonnici Apr 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't like the idea of this, @tejlmand for visibility/comment. And ping @kylebonnici whilst it will work in vscode, it means customers are wholly unable to change partition layouts for these

given file is in the sample editing this file in the visual editor is possible. We only discourage editing files the are part of the SDK

@ArekBalysNordic

Kindly node that we are working on the visual editor and we have done a lot of improvements. We sent an email for volunteers to use new beta. We recommend you try it out even if partitioning improvements have not yet been completed in full. Your feedback might be even more pertinent given the above.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kylebonnici, thanks for the confirmation. So it seems that we can go with a common .dtsi partition file, but we must have an appropriate .overlay file in each sample which includes it. Yeah, it is good idea to test beta version. I will try to do it and provide my feedback. Matter has a quite complex application with factory data and other extra partitions so it can be a good target for testing new extension versions 🙂

@nordicjm Regarding names of the dtsi files. Hmm... I'm not sure if it is good idea to name them using the whole target name like nrf54l15dk_nrf54l15_cpuapp_partitions.dtsi because in fact these partition files may be used as a base by users. I mean if I write there nrf54l15dk it means that it is dedicated to DK, whereas in fact these partition can be used in the final application and then be adjusted in the overlay file (as I did it using vscode). So I think it should be like nrf45l15_partitions.dtsi or nrf54l15_cpuapp_partitions.dtsi, however specifying DK or SoC is redundant for me.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taking this one: nrf54l15tag_partitions.dtsi it gives a different meaning, one is named nrf54l15 like it's for all i.e. SoC-based, then this one is a board name, should be uniform hence <board>_<soc>_...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, good point, however, now I see, that I can use nrf54l15_internal_partitions.dtsi for tag as well, so I will remove the board-specific.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nordicjm added _cpuapp_ to file names.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

given file is in the sample editing this file in the visual editor is possible. We only discourage editing files the are part of the SDK

** correction **

samples/matter/nrf52840_partitions.dtsi will be in the SDK and will not be copied to of tree hence editing this file be discouraged in the GUI. We are look for best solution to such cases

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right it must not be editable via gui. As it works now, so devicetree extension sees all those partitions, however if you want to modify something it is added into the .overlay file which is out of tree. And this case is great for me.

@ArekBalysNordic ArekBalysNordic force-pushed the pm_removal branch 2 times, most recently from 5d9423f to d69ff6f Compare April 20, 2026 12:24
@ArekBalysNordic ArekBalysNordic force-pushed the pm_removal branch 7 times, most recently from e3b659f to 40674b5 Compare April 23, 2026 13:30
Defined partition map for all targets supported in Matter samples.

Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
Added matter.cmake to use image flasher for generating
factory data. Aligned CMakeLists.txt with changes in Matter SDK.

Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
Refactored Matter Temple sample to non-Partition Manager
build. Aligned all images and board files.

Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
@ArekBalysNordic
Copy link
Copy Markdown
Contributor Author

@nrfconnect/ncs-co-drivers Could you please review?

@ArekBalysNordic ArekBalysNordic merged commit 4cad65e into nrfconnect:main Apr 27, 2026
21 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants